package com.gscitysfy.cus.drain.modules.duty.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gscitysfy.cus.drain.modules.duty.vo.MoperDutyMnRotaVo;


import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @description: 值班排班接口
 * @author 刘少华
 * @version 1.0
 * @date 2022/3/28 10:17
 */
public interface IMoperDutyScheduleService extends IService<MoperDutyMnRotaVo> {

    /**
     * 按日期分组查询排班
     * @param startTime
     * @param endTime
     * @param personType
     * @param coamClass
     * @param isOwn
     * @return 按日期分组的值班数据HashMap
     */
    Map<String, List<MoperDutyMnRotaVo>> listDutyScheduleGroupByDate(String startTime, String endTime, String personType, String coamClass, String isOwn,String personId);

    /**
     * 按条件查询值班日历
     * @param dutyTime
     * @param personType
     * @param coamClass
     * @param personId
     * @return
     */
    List<MoperDutyMnRotaVo> getDutySchedule (String dutyTime,String personType, String coamClass, String personId,String isAll);

    /**
     * 分页查询排班日历列表
     * @param startTime
     * @param endTime
     * @param personName
     * @param coamClass
     * @return
     */
    IPage<MoperDutyMnRotaVo> listDutySchedulePage(Page<MoperDutyMnRotaVo> page,String startTime, String endTime, String personName, String coamClass);

    /**
     * 导出排班表格
     * @param response
     * @param startTime
     * @param endTime
     * @param personType
     * @param coamClass
     * @param isOwn
     */
    void exportDutySchedule(HttpServletResponse response, String startTime, String endTime, String personType, String coamClass, String isOwn);

}
